package serveur;

import java.io.Serializable;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;


import commun.RemoteJoueur;
import commun.RemoteServeur;

public class Artificiel extends UnicastRemoteObject implements RemoteJoueur, Runnable,Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	public static int  Jartif=0;
	public static int Jartif_Count = 0;
	private String name = "CPU_";
	private RemoteServeur server;

	public Artificiel() throws RemoteException {
		Jartif_Count++;
	}
	
	public void run() {
		int j=0;
		try {
			String[] users = new String[server.getListJoueurs().size()];
			for(String s :server.getListJoueurs().keySet()){
				users[j]=s;
				j++;
			}

			for(RemoteJoueur rcc:server.getListJoueurs().values()){
				rcc.updateListeJoueur(users);
			}
		} catch (RemoteException e1) {
			e1.printStackTrace();
		}
		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
	/**
	 * Modifier le serveur de ce joueur artificiel
	 * @param crapetteServeur le serveur a affecte a ce joueur artificiel
	 */
	public void setServer(RemoteServeur remoreServeur) {

		server = remoreServeur;

		try {
			name  = "CPU_"+Jartif_Count;
			server.connect(name, this);
		} catch (RemoteException e) {
			e.printStackTrace();
		}


	}
	

	@Override
	public boolean IsAcceptedNewGame(String id, String client)
	throws RemoteException {
		// TODO Auto-generated method stub
		return false;
	}
	@Override
	public boolean IsAcceptedNewGame2(String id, String client)
	throws RemoteException {
		// TODO Auto-generated method stub
		return false;
	}
	@Override
	public void discuter(String id, String message, String client)
	throws RemoteException {
		// TODO Auto-generated method stub

	}
	@Override
	public String getNickname() throws RemoteException {
		// TODO Auto-generated method stub
		return null;
	}
	@Override
	public void updateListeJoueur(String[] clients) throws RemoteException {
		// TODO Auto-generated method stub

	}

	@Override
	public boolean IsAcceptedReprendrePartie(String id, String client,
			int[][] matrix, String mode, int gainId, int gainClient,
			String choixId, String choixClient) throws RemoteException {
		// TODO Auto-generated method stub
		return false;
	}

}
